vue打包后history模式跟子目录静态文件路径分析网!

vue打包后history模式跟子目录静态文件路径分析网

趋势迷

vue打包后history模式跟子目录静态文件路径分析

2024-07-21 06:20:24 来源:网络

vue打包后history模式跟子目录静态文件路径分析

vue项目的History模式??
const router = new VueRouter({ mode: 'history' routes: [.]})使用这种模式之后🐌😖_🪰,就没有#了🐀*_🦈,而是可以像使用正常的url进行访问了🕊_*。?不过这种模式要玩好🐟-|🎫🦔,还需要后台配置支持🌕🦭_😞😈。因为我们的应用是个单页客户端应用😉🪳_🦥🙁,如果后台没有正确的配置🌸🦘_——🌳,当用户在浏览器直接访问 好了吧😴🦘|🎗!
对于hash模式🌟🏅——🦒🤪,根路径是固定的🐪🦌_⛸🦍,就是项目的根目录😮😇_🤕🦓,但是history模式下🎿——💥,以/ 开头的嵌套路径会被当作根路径🎨🐬--💐🙁,所以使用“/”引入文件🦄😾_🦇⚾,就会找不到文件了😄——😳🐈‍⬛,因为文件本身就是在项目根目录下的🐉🎍_|🃏🙉,并不在嵌套路径这个目录下🥀-🏏。总结⛳_——🐔,无论hash模式还是history模式🌗😏_🍂,可以直接使用“”从项目根目录引入静态文件🐼♥——🦆。h是什么🦆🤓|——🦔🎖。

vue打包后history模式跟子目录静态文件路径分析

Vue-router History 模式相关配置??
vue-router 默认hash 模式——使用URL 的hash 来模拟一个完整的URL🦈-——🙉🍀,于是当URL 改变时🐘||🎲,页面不会重新加载🦠——🐊。如果不想要很丑的hash🤠😮-_🐕🦠,我们可以用路由的 history 模式🪀-——🐆,这种模式充分利用 history.pushState API 来完成URL 跳转而无须重新加载页面🪄🥈_🏑。当你使用history 模式时🕊-🥎,URL 就像正常等会说🎇__😷。
vue路由的两种模式😉_🌵,hash与history       对于Vue 这类渐进式前端开发框架🐕‍🦺🦔-|🧶🦍,为了构建SPA(单页面应用)🤕_|🐷,需要引入前端路由系统🤢🔮-🦙,这也就是Vue-router存在的意义🎯🙉||🏆。前端路由的核心🌍————🪰🧵,就在于———改变视图的同时不会向后端发出请求🐋🕸__*。#160;  一🤢🐏-😮、为了达到这个目的👹🌴|🐸,浏览器提供了到此结束了?😠💐————🛷🎆。
关于vue history模式下遇到的坑??
背景🌨💐|🐥💐: vue-cli4 配置vue-router 为history模式🎎🦖|😋🐣,跳转子路由后页面正常🍂🐘-🕹,但是刷新页面访问不到了原因🥉😻-|🤣🌨: 因为一般vue脚手架的默认路由配置时hash模式😸🤥_——🦠😧,为了解决直接打开打包文件页面空白的问题🦏——🦊🐦,会在config>index.js 下*_🐖🐙,把build的assetsPublicPath:'/', 改成assetsPublicPath:'./';但变成history后面会介绍😵——🪢。
解决方案🕊🦙_🙊♠:对于VUE的router[mode: history]模式在开发的时候⚡️--😼🥎,一般都不出问题😏|🦚🐤。是因为开发时用的服务器为node🦘🎖|🐳😟,Dev环境中自然已配置好了🐈🐙-_🐨。但对于放到nginx下运行的时候🦛😊_🌸,自然还会有其他注意的地方🐆-🐋🦜。总结如下🐵_-🏵🏵:在nginx里配置了以下配置后🦔⛈——🎭,可能首页没有问题🤮——|😠🐚,但链接其他会出现(404)location / { root D到此结束了?🦗🌵_-😹😐。
Vue-router 中hash模式和history模式的区别??
大牛解答🦡-|🎣*: 形式上🌲-🔮😃:hash模式url里面永远带着#号😂_——🐑,开发当中默认使用这个模式🎣_🐒🌱。如果用户考虑url的规范那么就需要使用history模式🤗🪱-*,因为history模式没有#号🐏🐇||☄️,是个正常的url🌎——🎮,适合推广宣传🎨-🦗; 功能上🎉🌻|🙊:比如我们在开发app的时候有分享页面🦘__🐾🐘,那么这个分享出去的页面就是用vue或是react做的😓-🎇🐏,咱们把这个页面分享好了吧🐨——🪰😅!
mode: "history", 想当年我使用Vue Cli 时🐟🌸_🐐😫,到这就完事了还有呢? .然而*-🦈,运气不好的我们可能会遇到找不到index.html的错误🐩-🪢🐳,因为本地的webpack-dev-server也要配置🎄——😩☘,不存在的资源统一返回index.html 然而🌲-|*🦖,运气不好的我们可能会遇到突然发现页面加载index.js 的方式是这样的模板index.html 还有呢?
如何将Vue-cli改造成支持多页面的history模式??
让所有入口都支持history 模式🐡🎯——|😇😙:1. 首先👽|——🦛, 我们在build 目录下建立个setup-dev-server.js 文件🪄🦖__🐨🌓, 里面代码如下🐯🏑——_👽🐝:2. 修改build/dev-server.js 文件主要修改文件中var app = express()到module.exports = app.listen(port, function (err) {之间的代码3. npm run dev 开始愉快的写代码吧有帮助请点赞🦙😟-🌚🎈。
1🪆🐒-🤭🐱、先配置nginx:2🌾————🎯、在路由中添加注意如果是ts文件的话😩🧶_|🎨🦡,如果默认有生成js的话要查看对应的js是否有加上目录🤢-🦑😦,否则设置会无效*🤐|😭🤬。3🏈🌨-😳、在vite.config.ts文件中添加🐙|——🦖,